The present computer systems may use hybrid approaches to solve the pattern matching problem. One such hybrid approach includes using a fast path to determine if there exists a potential matching pattern in information units and then sending the information unit to a slow path for much deeper analysis to determine if there exists a matching pattern in the information units. The computer systems may include a list of patterns (or signatures) and the information units are compared with the list of patterns to determine if there exists a matching pattern in the information units. When the fast path detects a potential match, typically, the information unit is forwarded to the slow path for deeper analysis or verification. However, forwarding the information unit to the slow path results in a data copy (duplicate) for each potential match in the fast path. A data copy may refer to copying a significant amount of data, for example, entire packet and/or the data surrounding (for instance preceding) the packet. Further, for deterministic finite automaton (DFA) based architectures, a single threaded approach may be used and such an approach may suffer from state explosion for large regular expression databases and single problematic regular expressions such as /abc.*ef.{256}gh/. Also, for multi-threaded architectures, an instruction or data fetch may, typically, result in a stall by the execution engine that may result in reduced performance.